const method = {
	toLunar(solarYear, solarMonth, solarDay) {
		// 定义全局变量

		var CalendarData = new Array(100)

		var madd = new Array(12)

		var numString = '一二三四五六七八九十'

		var monString = '正二三四五六七八九十冬腊'

		// eslint-disable-next-line no-unused-vars

		var cYear, cMonth, cDay, TheDate

		// eslint-disable-next-line no-array-constructor

		CalendarData = new Array(

			0xa4b,

			0x5164b,

			0x6a5,

			0x6d4,

			0x415b5,

			0x2b6,

			0x957,

			0x2092f,

			0x497,

			0x60c96,

			0xd4a,

			0xea5,

			0x50da9,

			0x5ad,

			0x2b6,

			0x3126e,

			0x92e,

			0x7192d,

			0xc95,

			0xd4a,

			0x61b4a,

			0xb55,

			0x56a,

			0x4155b,

			0x25d,

			0x92d,

			0x2192b,

			0xa95,

			0x71695,

			0x6ca,

			0xb55,

			0x50ab5,

			0x4da,

			0xa5b,

			0x30a57,

			0x52b,

			0x8152a,

			0xe95,

			0x6aa,

			0x615aa,

			0xab5,

			0x4b6,

			0x414ae,

			0xa57,

			0x526,

			0x31d26,

			0xd95,

			0x70b55,

			0x56a,

			0x96d,

			0x5095d,

			0x4ad,

			0xa4d,

			0x41a4d,

			0xd25,

			0x81aa5,

			0xb54,

			0xb6a,

			0x612da,

			0x95b,

			0x49b,

			0x41497,

			0xa4b,

			0xa164b,

			0x6a5,

			0x6d4,

			0x615b4,

			0xab6,

			0x957,

			0x5092f,

			0x497,

			0x64b,

			0x30d4a,

			0xea5,

			0x80d65,

			0x5ac,

			0xab6,

			0x5126d,

			0x92e,

			0xc96,

			0x41a95,

			0xd4a,

			0xda5,

			0x20b55,

			0x56a,

			0x7155b,

			0x25d,

			0x92d,

			0x5192b,

			0xa95,

			0xb4a,

			0x416aa,

			0xad5,

			0x90ab5,

			0x4ba,

			0xa5b,

			0x60a57,

			0x52b,

			0xa93,

			0x40e95

		)

		madd[0] = 0

		madd[1] = 31

		madd[2] = 59

		madd[3] = 90

		madd[4] = 120

		madd[5] = 151

		madd[6] = 181

		madd[7] = 212

		madd[8] = 243

		madd[9] = 273

		madd[10] = 304

		madd[11] = 334

		function GetBit(m, n) {
			return (m >> n) & 1

		}

		// 农历转换

		function e2c() {
			TheDate =

				arguments.length != 3

				?
				new Date()

				:
				new Date(arguments[0], arguments[1], arguments[2])

			var total, m, n, k

			var isEnd = false

			var tmp = TheDate.getYear()

			if (tmp)

				tmp += 1900

			}

			total =

				(tmp - 1921) * 365 +

				Math.floor((tmp - 1921) / 4) +

				madd[TheDate.getMonth()] +

				TheDate.getDate() -

				38

			if (TheDate.getYear() % 4 == 0 && TheDate.getMonth() > 1) {
				total++

			}

			for (m = 0;; m++) {
				k = CalendarData[m]

				for (n = k; n >= 0; n--) {
					if (total <= 29 + GetBit(CalendarData[m], n)) {
						isEnd = true

						break

					}

					total = total - 29 - GetBit(CalendarData[m], n)

				}

				if (isEnd) break

			}

			cYear = 1921 + m

			cMonth = k - n + 1

			cDay = total

			if (k == 12) {
				if (cMonth == Math.floor(CalendarData[m] / 0x10000) + 1) {
					cMonth = 1 - cMonth

				}

				if (cMonth > Math.floor(CalendarData[m] / 0x10000) + 1) {
					cMonth--

				}

			}

		}

		function GetcDateString() {
			var tmp = ''

			if (cDay == 1) {
				if (cMonth

					// tmp += "(闰)";

					tmp += monString.charAt(-cMonth - 1)

				}
				else {
					tmp += monString.charAt(cMonth - 1)

				}

				tmp += '月'

			} else {
				tmp += cDay

				if (cDay % 10 != 0 || cDay == 10) {
					tmp += numString.charAt((cDay - 1) % 10)

				}

			}

			return tmp

		}

		solarMonth = parseInt(solarMonth) > 0 ? solarMonth - 1 : 11

		e2c(solarYear, solarMonth, solarDay)

		return GetcDateString()
		

	}
    
}

export default method
